//
//  RegularUnit.h
//  NetworkTaxiDriver
//
//  Created by thinkjoy on 16/9/21.
//  Copyright © 2016年 Thinkjoy_RS. All rights reserved.
//  正则表达式工具类

#import <Foundation/Foundation.h>

@interface RegularUnit : NSObject

#pragma mark    是否是手机号
/**
 *  是否是手机号
 */
+ (BOOL)isMobilePhone:(NSString *)phoneNum;

#pragma mark    是否是移动号
/**
 *  是否是移动号
 */
+ (BOOL)isCMMobilePhone:(NSString *)phoneNum;

#pragma mark    是否是联通号
/**
 *  是否是联通号
 */
+ (BOOL)isCUMobilePhone:(NSString *)phoneNum;

#pragma mark    是否是电信号
/**
 *  是否是电信号
 */
+ (BOOL)isCTMobilePhone:(NSString *)phoneNum;

#pragma mark    核对密码格式,6~16位数字/字母/下划线
/**
 *  核对密码格式,6~16位数字/字母/下划线
 *
 *  @param pswStr 需要校验的字符串
 *
 *  @return Bool
 */
+ (BOOL)checkPsw:(NSString *)pswStr;

#pragma mark    18位身份证格式和合法性验证
/**
 *  18位身份证格式和合法性验证
 *
 *  @param userID 身份证号
 *
 *  @return BOOL
 */
+ (BOOL)checkUserID:(NSString *)userID;

#pragma mark    18和15位身份证格式验证
/**
 *  18和15位身份证格式验证
 *
 *  @param userID 身份证号
 *
 *  @return BOOL
 */
+ (BOOL)checkIDCade:(NSString *)IDCade;

#pragma mark    车牌号格式校验
/**
 *  车牌号格式校验
 *
 *  @param carID 车牌号
 *
 *  @return Bool
 */
+ (BOOL)checkCarID:(NSString *)carID;

#pragma mark    邮箱格式校验
/**
 *  邮箱格式校验
 *
 *  @param email 邮箱
 *
 *  @return bool
 */
+ (BOOL)checkEmail:(NSString *)email;


#pragma mark   网址验证
/**
 *  网址验证
 *
 *  @param url url
 *
 *  @return bool
 */
+ (BOOL)checkUrl:(NSString *)url;

#pragma mark    纯汉字
/** 纯汉字 */
+ (BOOL)checkChinese:(NSString *)chinese;



#pragma mark 是否为IP
/**
 *  是否符合IP格式，xxx.xxx.xxx.xxx
 *
 *  @param ip
 *
 *  @return bool
 */
+ (BOOL)checkIP:(NSString *)ip;

#pragma mark    工商税号
/** 工商税号 */
+ (BOOL)checkTaxNo:(NSString *)taxNo;

#pragma mark    去掉两端空格和换行符
/** 去掉两端空格和换行符 */
+ (NSString *)stringByTrimmingBlank:(NSString *)str;

#pragma mark    去掉html格式
/** 去掉html格式 */
+ (NSString *)removeHtmlFormat:(NSString *)str;



#pragma mark     是否符合最小长度、最长长度，是否包含中文,首字母是否可以为数字
/**
 @brief     是否符合最小长度、最长长度，是否包含中文,首字母是否可以为数字
 @param     minLenth 账号最小长度
 @param     maxLenth 账号最长长度
 @param     containChinese 是否包含中文
 @param     firstCannotBeDigtal 首字母不能为数字
 @return    正则验证成功返回YES, 否则返回NO
 */
+ (BOOL)checkStr:(NSString *)str withMinLenth:(NSInteger)minLenth
                   maxLenth:(NSInteger)maxLenth
             containChinese:(BOOL)containChinese
        firstCannotBeDigtal:(BOOL)firstCannotBeDigtal;

#pragma mark    是否符合最小长度、最长长度，是否包含中文,数字，字母，其他字符，首字母是否可以为数字
/**
 @brief     是否符合最小长度、最长长度，是否包含中文,数字，字母，其他字符，首字母是否可以为数字
 @param     minLenth 账号最小长度
 @param     maxLenth 账号最长长度
 @param     containChinese 是否包含中文
 @param     containDigtal   包含数字
 @param     containLetter   包含字母
 @param     containOtherCharacter   其他字符
 @param     firstCannotBeDigtal 首字母不能为数字
 @return    正则验证成功返回YES, 否则返回NO
 */
+ (BOOL)checkStr:(NSString *)str withMinLenth:(NSInteger)minLenth
                   maxLenth:(NSInteger)maxLenth
             containChinese:(BOOL)containChinese
              containDigtal:(BOOL)containDigtal
              containLetter:(BOOL)containLetter
      containOtherCharacter:(NSString *)containOtherCharacter
        firstCannotBeDigtal:(BOOL)firstCannotBeDigtal;
















@end
